package com.hmy.contract.service.contract;

import com.hmy.contract.bo.request.contract.AreaManagerApprovalSupplyContractRequest;
import com.hmy.contract.bo.request.contract.RiskMinisterApprovalSupplyContractRequest;
import com.hmy.contract.bo.request.contract.SupplyContractApprovalHistoryRequest;
import com.hmy.contract.bo.response.contract.AreaManagerApprovalSupplyContractResponse;
import com.hmy.contract.bo.response.contract.RiskMinisterApprovalSupplyContractResponse;
import com.hmy.contract.bo.response.contract.SupplyContractApprovalHistoryResponse;
import com.hmy.contract.dal.po.SupplyContractPo;
import com.hmy.workflow.api.bo.response.process.StartProcessInstanceResponse;
import com.hmy.workflow.api.bo.response.task.ApprovalTaskResponse;

public interface ISupplyContractApprovalService {

    /**
     * 获取增补合同审批历史
     * @param supplyContractApprovalHistoryRequest 获取增补合同审批历史入参
     * @return {@link SupplyContractApprovalHistoryResponse}
     */
    SupplyContractApprovalHistoryResponse getSupplyContractApprovalHistory(SupplyContractApprovalHistoryRequest supplyContractApprovalHistoryRequest);

    /**
     * 风控部长审批增补合同
     * @param supplyContractApprovalRequest 风控部长审批增补合同入参
     * @return {@link RiskMinisterApprovalSupplyContractResponse}
     */
    RiskMinisterApprovalSupplyContractResponse riskMinisterApprovalSupplyContract(RiskMinisterApprovalSupplyContractRequest supplyContractApprovalRequest);
    /**
     * 区域经理审批增补合同
     * @param areaManagerApprovalSupplyContractRequest 区域经理审批增补合同入参
     * @return {@link AreaManagerApprovalSupplyContractResponse}
     */
    AreaManagerApprovalSupplyContractResponse areaManagerApprovalContract(AreaManagerApprovalSupplyContractRequest areaManagerApprovalSupplyContractRequest);

    StartProcessInstanceResponse startApprove(SupplyContractPo supplyContract);

    ApprovalTaskResponse reSubmit(SupplyContractPo supplyContract);
}
